Skip to content

Conversation

@Wumpf
Copy link
Member

@Wumpf Wumpf commented Dec 1, 2025

Related

What

Even without the new addition of named transform frames, the "Transforms & Spaces" page was very outdated.
This rewrites it completely and explains now how all the different kind of transforms work and relate to each other

We'll likely refine this page further in the coming days. So doesn't have to be perfect yet, just better than before.

Draft todo:

  • better title. is too long
  • make examples x language
  • add some graphs showing the transforms
  • talk about more viewer specifics? Overriding of coordinate frames, incoming UI things by @IsseW ?
  • check language on "explicit transform frames" vs "name" vs "entity path derived" vs "implicit" - want to use the same thing consistently and across archetype documentation

@Wumpf Wumpf added 📖 documentation Improvements or additions to documentation include in changelog labels Dec 1, 2025
@github-actions
Copy link

github-actions bot commented Dec 1, 2025

Latest documentation preview deployed successfully.

Result Commit Link
671717a https://landing-rafim1zl3-rerun.vercel.app/docs

Note: This comment is updated whenever you push a commit.

@github-actions
Copy link

github-actions bot commented Dec 2, 2025

Web viewer built successfully.

Result Commit Link Manifest
671717a https://rerun.io/viewer/pr/12034 +nightly +main

View image diff on kitdiff.

Note: This comment is updated whenever you push a commit.

@Wumpf Wumpf force-pushed the andreas/tf/new-pinhole-bp-example branch from e77d1e3 to 2b26a70 Compare December 2, 2025 12:48
- The `sun` entity exists at the origin of its own coordinate system
- The `sun/planet` transform places the planet 6 units along x away from the sun
- The `sun/planet/moon` transform places the moon 3 units along x away from the planet

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

link more detailed snippets!

@Wumpf Wumpf requested a review from ntjohnson1 December 2, 2025 16:19
Base automatically changed from andreas/tf/new-pinhole-bp-example to main December 2, 2025 17:52
@Wumpf Wumpf force-pushed the andreas/tf/doc-refresh branch from 270fe8c to 86a9bcd Compare December 2, 2025 17:53
Copy link
Member

@ntjohnson1 ntjohnson1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I think this looks good. I'd consider all my notes to basically be nits. The organization of headers to make the flow clearer is probably the biggest thing.

Leaving as a comment since this is still a draft and I assume you want a final pass after check boxes are completed.

The simplest way to use transforms is through entity path hierarchies, where each transform describes the relationship between an entity and its parent path.
Note that by default, all entities are connected via identity transforms (to opt out of that, you have to use named transform frames, more on that later).

snippet: concepts/transform3d_hierarchy_simple
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooof, this initially rendered as the moon inside my planet. I reset my view and it was fixed. However, it appears to default to wireframe instead of solid?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh that's a problem. good catch

Note that unlike in ROS, you can log your transform relationship on _any_ entity.
However, currently once an entity specified the relation between two frames, this relation may no longer be logged on any other entity.

Named transform frames have several advantages over entity path based hierarchies:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The nicest part for me running the snippets was that I could hide the sun when using names but maybe that is captured with the decoupling entities from transforms already.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm interesting. I'd lean towards it already being covered since with enough clicks you can also have it. But good point 🤔

Example:
TODO: xlanguage please.
```python
rr.log("robot", rr.Transform3D(translation=[1, 0, 0]))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These little code snippets didn't display anything interesting but made the idea concrete. Maybe the TODO will resolve that.

---

<!-- Figma file for diagrams in this article: https://www.figma.com/board/PTwJKgi9kQOqG7ZgzdhrDL/Transforms-doc-page-graphs?t=fWkOGxxn6mZkkCON-1 -->

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note on overall layout. Right now it feels a little weird so maybe just rearranging the header hierarchy will help?

Maybe something like (no opinion on exact names):

  • Transforms
    • Entity path transforms
    • Named transforms
    • Transforms - under the hood
  • Special Transform Archetypes
    • Pinhole
    • View coordinates
    • Pose transforms

@Wumpf Wumpf force-pushed the andreas/tf/doc-refresh branch from 86a9bcd to 671717a Compare December 3, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📖 documentation Improvements or additions to documentation include in changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants